﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RN.Entidades;
using CAD.DAO;
using System.Data;

namespace RN.Componentes
{
    public class CCentrodeCostos_Asignacion_Personal
    {
        #region DMLS
        public static bool Insertar(CENTRODECOSTO_ASIGNACION_PERSONAL objProxy)
        {
            ValidationException x = new ValidationException();
            if (DateTime.Now == objProxy.DFECHA_DT1)
                x.AgregarError("Ingrese FECHA CORRECTA");
            if (objProxy.LPERSONAL_ID1.LPERSONAL_ID1 <= 0)
                x.AgregarError("Ingrese el código");
            if (objProxy.LCENTRODECOSTOS_ID1.LCENTRODECOSTOS_ID1 <= 0)
                x.AgregarError("Ingrese el código");

            if (x.Cantidad > 0)
                throw x;

            DAOCentrodeCostos_Asignacion_Personal daoProxy = new DAOCentrodeCostos_Asignacion_Personal();
            return daoProxy.Insertar(objProxy.LPERSONAL_ID1.LPERSONAL_ID1, objProxy.LCENTRODECOSTOS_ID1.LCENTRODECOSTOS_ID1, objProxy.IPORCENTAJE_ID1, objProxy.DFECHA_DT1, objProxy.ICONCURRENCIA1) > 0;
        }
        public static bool ActualizarAREA(CENTRODECOSTO_ASIGNACION_PERSONAL objProxy)
        {
            ValidationException x = new ValidationException();
            if (objProxy.LPERSONAL_ID1.LPERSONAL_ID1 <= 0)
                x.AgregarError("Ingrese el código");
            if (objProxy.LCENTRODECOSTOS_ID1.LCENTRODECOSTOS_ID1 <= 0)
                x.AgregarError("Ingrese el código");


            if (x.Cantidad > 0)
                throw x;

            DAOCentrodeCostos_Asignacion_Personal daoProxy = new DAOCentrodeCostos_Asignacion_Personal();
            return daoProxy.Actualizar(objProxy.LPERSONAL_ID1.LPERSONAL_ID1, objProxy.LCENTRODECOSTOS_ID1.LCENTRODECOSTOS_ID1, objProxy.IPORCENTAJE_ID1, objProxy.DFECHA_DT1, objProxy.ICONCURRENCIA1);

        }
        public static bool Eliminar(int LCENTRODECOSTOS_ASIGNACION_TBL_PERSONAL)
        {
            ValidationException x = new ValidationException();
            if (LCENTRODECOSTOS_ASIGNACION_TBL_PERSONAL <= 0)
                x.AgregarError("Ingrese el código");
            
            if (x.Cantidad > 0)
                throw x;

            DAOCentrodeCostos_Asignacion_Personal daoProxy = new DAOCentrodeCostos_Asignacion_Personal();
            return daoProxy.Eliminar(LCENTRODECOSTOS_ASIGNACION_TBL_PERSONAL);
        }
        #endregion
        #region Selects
        public static List<CENTRODECOSTO_ASIGNACION_PERSONAL> Traer()
        {
            DAOCentrodeCostos_Asignacion_Personal daoProxy = new DAOCentrodeCostos_Asignacion_Personal();
            DataSet dtsProxy = daoProxy.Traer();
            return CargarLista(dtsProxy.Tables[0]);
        }
        public static CENTRODECOSTO_ASIGNACION_PERSONAL TraerXId(int LPERSONAL_ID1, int LCENTRODECOSTOS_ID1)
        {
            DAOCentrodeCostos_Asignacion_Personal daoProxy = new DAOCentrodeCostos_Asignacion_Personal();
            DataSet dtsProxy = daoProxy.TraerXId(LPERSONAL_ID1, LCENTRODECOSTOS_ID1);

            ValidationException x = new ValidationException();
            if (LPERSONAL_ID1 <= 0)
                x.AgregarError("Ingrese el código");
            if (LCENTRODECOSTOS_ID1 <= 0)
                x.AgregarError("Ingrese el código");

            if (x.Cantidad > 0)
                throw x;
            return Cargar(dtsProxy.Tables[0].Rows[0]);
        }
        public static CENTRODECOSTO_ASIGNACION_PERSONAL VERIFICARSIEXIOSTE(int LPERSONAL_ID1, int LCENTRODECOSTOS_ID1)
        {
            DAOCentrodeCostos_Asignacion_Personal daoProxy = new DAOCentrodeCostos_Asignacion_Personal();
            DataSet dtsProxy = daoProxy.bUSCARSIEXISTE(LPERSONAL_ID1, LCENTRODECOSTOS_ID1);

            ValidationException x = new ValidationException();
            if (LPERSONAL_ID1 <= 0)
                x.AgregarError("Ingrese el código");
            if (LCENTRODECOSTOS_ID1 <= 0)
                x.AgregarError("Ingrese el código");

            if (x.Cantidad > 0)
                throw x;
            return CargarEXISTE(dtsProxy.Tables[0].Rows[0]);
        }
        public static CENTRODECOSTO_ASIGNACION_PERSONAL TraerSumaPorcentaje(int LPERSONAL_ID1)
        {
            DAOCentrodeCostos_Asignacion_Personal daoProxy = new DAOCentrodeCostos_Asignacion_Personal();
            DataSet dtsProxy = daoProxy.SumadeProcentaje(LPERSONAL_ID1);
            ValidationException x = new ValidationException();
            if (LPERSONAL_ID1 <= 0)
                x.AgregarError("Ingrese el código");
            if (x.Cantidad > 0)
                throw x;
            return Cargarporcentaje(dtsProxy.Tables[0].Rows[0]);
        }
        #endregion
        #region Metodos Privados
        private static List<CENTRODECOSTO_ASIGNACION_PERSONAL> CargarLista(DataTable tabla)
        {
            List<CENTRODECOSTO_ASIGNACION_PERSONAL> lstProxy = new List<CENTRODECOSTO_ASIGNACION_PERSONAL>();

            foreach (DataRow fila in tabla.Rows)
            {
                lstProxy.Add(Cargar(fila));
            }
            return lstProxy;
        }

        private static CENTRODECOSTO_ASIGNACION_PERSONAL Cargar(DataRow fila)
        {
            CENTRODECOSTO_ASIGNACION_PERSONAL objProxy = new CENTRODECOSTO_ASIGNACION_PERSONAL();
            objProxy.LCENTRODECOSTOS_ASIGNACION_TBL_PERSONAL1 = Convert.ToInt32(fila["LCENTRODECOSTOS_ASIGNACION_TBL_PERSONAL"]);
            objProxy.LCENTRODECOSTOS_ID1.LCENTRODECOSTOS_ID1 = Convert.ToInt32(fila["LCENTRODECOSTOS_ID"]);
            objProxy.LPERSONAL_ID1.LPERSONAL_ID1 = Convert.ToInt32(fila["LPERSONAL_ID"]);
            objProxy.DFECHA_DT1 = Convert.ToDateTime(fila["DFECHA_DT"]);
            objProxy.IPORCENTAJE_ID1 = Convert.ToInt32(fila["IPORCENTAJE"]);
        
            return objProxy;
        }
        private static CENTRODECOSTO_ASIGNACION_PERSONAL Cargarporcentaje(DataRow fila)
        {
            CENTRODECOSTO_ASIGNACION_PERSONAL objProxy = new CENTRODECOSTO_ASIGNACION_PERSONAL();
            objProxy.IPORCENTAJE_ID1 = Convert.ToInt32(fila["PORCENTAJE"]);
            return objProxy;
        }
        private static CENTRODECOSTO_ASIGNACION_PERSONAL CargarEXISTE(DataRow fila)
        {
            CENTRODECOSTO_ASIGNACION_PERSONAL objProxy = new CENTRODECOSTO_ASIGNACION_PERSONAL();
            objProxy.LCENTRODECOSTOS_ASIGNACION_TBL_PERSONAL1 = Convert.ToInt32(fila["LCENTRODECOSTOS_ASIGNACION_TBL_PERSONAL"]);
            return objProxy;
        }
       
        


        public static List<CENTRODECOSTO_ASIGNACION_PERSONAL> Traergrid()
        {
            DAOCentrodeCostos_Asignacion_Personal daoProxy = new DAOCentrodeCostos_Asignacion_Personal();
            DataSet dtsProxy = daoProxy.Traer();

            return CargarGrid(dtsProxy.Tables[0]);
        }
        private static List<CENTRODECOSTO_ASIGNACION_PERSONAL> CargarGrid(DataTable tabla)
        {
            List<CENTRODECOSTO_ASIGNACION_PERSONAL> lstProxy = new List<CENTRODECOSTO_ASIGNACION_PERSONAL>();

            foreach (DataRow fila in tabla.Rows)
            {
                lstProxy.Add(CargarG(fila));
            }
            return lstProxy;
        }
        private static CENTRODECOSTO_ASIGNACION_PERSONAL CargarG(DataRow fila)
        {
            CENTRODECOSTO_ASIGNACION_PERSONAL objProxy = new CENTRODECOSTO_ASIGNACION_PERSONAL();
            objProxy.LCENTRODECOSTOS_ASIGNACION_TBL_PERSONAL1 = Convert.ToInt32(fila["LCENTRODECOSTOS_ASIGNACION_TBL_PERSONAL"]);
          
              objProxy.LCENTRODECOSTOS_ID1.LCENTRODECOSTOS_ID1 =Convert.ToInt32( fila["LCENTRODECOSTOS_ID"]);
              CentrodeCostos objcentro = new CentrodeCostos();
              objcentro = Ccentrodecostos.TraerXId(objProxy.LCENTRODECOSTOS_ID1.LCENTRODECOSTOS_ID1);
              objProxy.LCENTRODECOSTOS_ID1nombre = objcentro.SNOMBRECENTRODECOSTO1;
           

              objProxy.LPERSONAL_ID1.LPERSONAL_ID1 = Convert.ToInt32(fila["LPERSONAL_ID"]);
              Personal onjperso = new Personal();
              onjperso = CPersonal.TraerXId(objProxy.LPERSONAL_ID1.LPERSONAL_ID1);
              objProxy.LPERSONAL_ID1nombre = onjperso.Snombre;
              objProxy.LPERSONAL_ID1ci = onjperso.Icarnetidentidad1;

              objProxy.IPORCENTAJE_ID1 = Convert.ToInt32(fila["IPORCENTAJE"]);

              objProxy.DFECHA_DT1 = Convert.ToDateTime(fila["DFECHA_DT"]);

            
            return objProxy;
        }

        #endregion
    }
}
